/***************************************************************************
 * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and         *
 * Martin Renou                                                             *
 * Copyright (c) QuantStack                                                 *
 * Copyright (c) Serge Guelton                                              *
 *                                                                          *
 * Distributed under the terms of the BSD 3-Clause License.                 *
 *                                                                          *
 * The full license is in the file LICENSE, distributed with this software. *
 ****************************************************************************/

#ifndef KSIMD_ISA_HPP
#define KSIMD_ISA_HPP

#include "../config/ksimd_arch.hpp"

#include "./ksimd_generic_fwd.hpp"

#if KSIMD_WITH_SSE2
#include "./ksimd_sse2.hpp"
#endif

#if KSIMD_WITH_SSE3
#include "./ksimd_sse3.hpp"
#endif

#if KSIMD_WITH_SSSE3
#include "./ksimd_ssse3.hpp"
#endif

#if KSIMD_WITH_SSE4_1
#include "./ksimd_sse4_1.hpp"
#endif

#if KSIMD_WITH_SSE4_2
#include "./ksimd_sse4_2.hpp"
#endif

#if KSIMD_WITH_FMA3_SSE
#include "./ksimd_fma3_sse.hpp"
#endif

#if KSIMD_WITH_FMA4
#include "./ksimd_fma4.hpp"
#endif

#if KSIMD_WITH_AVX
#include "./ksimd_avx.hpp"
#endif

#if KSIMD_WITH_FMA3_AVX
#include "./ksimd_fma3_avx.hpp"
#endif

#if KSIMD_WITH_AVX2
#include "./ksimd_avx2.hpp"
#endif

#if KSIMD_WITH_FMA3_AVX2
#include "./ksimd_fma3_avx2.hpp"
#endif

#if KSIMD_WITH_AVX512F
#include "./ksimd_avx512f.hpp"
#endif

#if KSIMD_WITH_AVX512BW
#include "./ksimd_avx512bw.hpp"
#endif

#if KSIMD_WITH_NEON
#include "./ksimd_neon.hpp"
#endif

#if KSIMD_WITH_NEON64
#include "./ksimd_neon64.hpp"
#endif

#if KSIMD_WITH_SVE
#include "./ksimd_sve.hpp"
#endif

// Must come last to have access to all conversion specializations.
#include "./ksimd_generic.hpp"

#endif
